One of the primary functions of an Enterprise Resource Planning (ERP) middle-tier server is reading and writing data from a relational database, which stores business data. Typically, read operations are performed much more frequently than write operations, and often the same data may be read repeatedly. Reading data from a database is frequently a performance bottleneck as data needs to be retrieved from another tier and the query may take some time to be processed by the database.
Substantial performance improvements are realized when caching data in memory of an ERP server after the data has been read from the database. Subsequent reads of the same data are retrievable from the memory rather than accessing the data from the database.
The challenges in implementing or using a cache include how to limit the cache size while maintaining its effectiveness and how to remove or update cached items when the items no longer accurately reflect the data in the database as a result of updates of other changes applied to the data.
A multiple tenant ERP middle-tier server processes data for multiple tenants, which include multiple organizations. The ERP system is capable of achieving greater economy of scale as a hosting entity by sharing computing resources across many tenants. Tenants or security policies may demand that data separation between the tenants be maintained. Furthermore, hardware resources are to be used and allocated with efficiency and fairness in mind so that a responsive system is maintained for all tenants at all times.